package day12;
//volatile原子性
public class Demo2 implements Runnable{
     int count;//购买商品得数量
    public void run() {
        for(int i=0;i<1000;i++){
            //volatile不能保证类似于下面得复合操作都成功 都失败
            //但是它可以保证属性单个操作 是原子性 所以它不能保证线程安全
            //通常可以通过synchronized同步锁保证安全
            synchronized (this) {
                count++;//包含:读取count 计算count +1 赋值count
            }
            //count=100;  属于一次操作
            System.out.println("购买商品数量:"+count);
        }
    }
    public static void main(String[] args) {
        Demo2 d=new Demo2();
        for(int i=0;i<1000;i++){
            new Thread(d).start();
        }
    }
}
